package holdobject;

import java.util.*;

public class PriorityQueueDemo {
    public static void main(String[] args) {
        PriorityQueue<Integer> priorityQueue=new PriorityQueue<Integer>();
        Random random=new Random(47);
        for (int i = 0; i <10 ; i++) {
            priorityQueue.offer(random.nextInt(i+10));
        }
        QueueDemo.printQ(priorityQueue);

        List<Integer> ints= Arrays.asList(22,25,20,18,14,9,3,1,1,2,3,9,14,18,21,23,25);
        //
        priorityQueue=new PriorityQueue<Integer>(ints);
        QueueDemo.printQ(priorityQueue);
        priorityQueue=new PriorityQueue<Integer>(ints.size(), Collections.reverseOrder());
        //创建具有 PriorityQueue初始容量的PriorityQueue，
        // 根据指定的比较器对其元素进行排序。
        priorityQueue.addAll(ints);//将指定集合中的所有元素插入到此列表中的指定位置
        QueueDemo.printQ(priorityQueue);
        //
        String fact ="EDUCATION SHOWLD ESCHEW OBFUSCATION";
        List<String> strings=Arrays.asList(fact.split(""));//将数组转换为list

        PriorityQueue<String> stringPQ =new PriorityQueue<String>(strings);//创建具有默认初始容量的
        // PriorityQueue ，并根据指定的比较器对其元素进行排序。
        QueueDemo.printQ(stringPQ);
        stringPQ=new PriorityQueue<String>(strings.size(),Collections.reverseOrder());
        stringPQ.addAll(strings);
        QueueDemo.printQ(stringPQ);

        Set<Character> charSet=new HashSet<Character>();//新创建一个Hashset集合，容器
        for (char c:fact.toCharArray()){//将字符串转换为新的字符数组
            charSet.add(c);//向此集合添加元素
        }
        PriorityQueue<Character> charactersPQ=new PriorityQueue<Character>(charSet);//把charSet放入PriorityQueue容器
        QueueDemo.printQ(charactersPQ);//将他打印出来



    }

}
